<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>htmlcss 阶段</title>
    <style>
        /* 外观 */
        html,
        body {
            width: 100%;
            height: 100%;
            background-color: #000;
        }
        body {
            overflow: hidden;
        }
        .pig-box {
            width: 328px;
            height: 298px;
            background-image: url(./img/bg.png);
            margin: 100px auto;
            background-color: #000;
            position: relative;
            cursor: pointer;
        }
        .pig-box ul {
            padding: 0;
            margin: 0;
            list-style: none;
            width: 1000%;
            height: 298px;
            position: absolute;
            left: -1968px;
            top: 0;
        }
        .pig-box ul li {
            float: left;
            width: 10%;
            height: 298px;
        }
        .pig-box ul li:nth-child(2n-1) {
            background-image: url(./img/pig.png);
        }

    </style>
</head>
<body>
    <!-- 结构 -->
    <div class="pig-box">
        <!-- ul才是承载小猪的容器  -->
        <ul>
            <li></li>
            <li></li>

            <li></li>
            <li></li>

            <li></li>
            <li></li>

            <li></li>
            <li></li>

            <li></li>
            <li></li>
        </ul>
    </div>


<script>
    // 要求：
        // 套小猪
        // 设置小猪不断在移动,点击页面可以停止移动小猪,再次点击页面可以继续移动小猪
        // 当小猪停止移动,获取承载小猪的容器标签的当前位置,做位置的判断
        // 容器标签当前位置为 : 约-656  约-1312  约-1968  约-2624 表示套住小猪（允许大小偏差10px）
        // 注意 如图
    // 思考: 
        // 如何让小猪不停的移动?
        // 如何让小猪停止的移动?
        // 如何判断套住小猪?


    // 编码:
        // 获取容器标签
        var ulElement = document.querySelector(".pig-box ul");
        // 记录步长
        var speed = 10;
        // 记录定时器毫秒 millisecond   ms  
        var millisecond = 30;
        // 定时器变量
        var timer = null;
        // 设置移动或停止的开关布尔值
        var isMove = true;


        // 定义函数 用于移动小猪的(改变ul的left属性值)
        var move = function(){
            // 当前位置
            var cur = parseInt(getComputedStyle(ulElement)["left"]) ; //0px ==> 0
            // console.log(cur);
            // 判断小猪是否移动超出范围  -1968    -656     0
            if(cur > -656){
                cur = -1968;
            }
            // 目标位置 = 当前位置 + 步长
            ulElement.style["left"] = cur + speed +"px";
        }

        //测试移动小猪
        // move();

        // 执行定时器函数
        timer = setInterval(function(){ move() },millisecond);
        // timer = setInterval(move,millisecond);

        // 事件函数
        var handle = function(){
            if(isMove){
                // console.log("1");
                // 停止执行定时器函数
                clearInterval(timer);
                // 当前位置
                var cur = parseInt(getComputedStyle(ulElement)["left"]);
                console.log(cur);
                // 判断 约-656  约-1312  约-1968  约-2624 表示套住小猪（允许大小偏差10px）
                if(cur >= (-656 - 10) && cur <= (-656 + 10)){  
                    alert("恭喜您,获取保时捷一只!")
                }
                if(cur >= (-1312 - 10) && cur <= (-1312 + 10)){ 
                    alert("恭喜您,获取保时捷一只!")
                 }
                if(cur >= (-1968 - 10) && cur <= (-1968 + 10)){ 
                    alert("恭喜您,获取保时捷一只!")
                 }
                if(cur >= (-2624 - 10) && cur <= (-2624 + 10)){ 
                    alert("恭喜您,获取保时捷一只!")
                 }
                isMove = false;
            }else {
                // console.log("0");
                isMove = true;
                // 停止执行定时器函数
                clearInterval(timer);
                // 再继续执行定时器函数
                timer = setInterval(function(){ move() },millisecond);
            }
        }

        //  绑定点击事件
        document.body.onclick = handle;
        //  绑定键盘事件
        document.onkeydown = function(evt){
            var keyCode = evt.keyCode;
            if(keyCode == 32){
                handle();
            }
        }



    
</script>
</body>
</html>